Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Various governance clarifications #1994

Merged
merged 3 commits into from
Oct 8, 2018

Conversation

jbeda
Copy link
Contributor

@jbeda jbeda commented Apr 1, 2018

We talked about some of this during the Steering committee meetings. I don't think any of this should be controversial.

@jbeda jbeda requested review from bgrant0607 and pwittrock April 1, 2018 04:12
@k8s-ci-robot k8s-ci-robot added size/M Denotes a PR that changes 30-99 lines, ignoring generated files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. labels Apr 1, 2018
@k8s-ci-robot k8s-ci-robot requested a review from grodrigues3 April 1, 2018 04:12
@jbeda
Copy link
Contributor Author

jbeda commented Apr 1, 2018

/committee steering
/sig contributor-experience

@k8s-ci-robot k8s-ci-robot added committee/steering Denotes an issue or PR intended to be handled by the steering committee. sig/contributor-experience Categorizes an issue or PR as relevant to SIG Contributor Experience. labels Apr 1, 2018
@cblecker
Copy link
Member

cblecker commented Apr 1, 2018

/cc

@k8s-ci-robot k8s-ci-robot requested a review from cblecker April 1, 2018 05:14
governance.md Outdated

All code projects use the [Apache Licence version 2.0](LICENSE). Documentation repositories should use the [Creative Commons License version 4.0](https://git.k8s.io/website/LICENSE).

Note that "Kubernetes incubator" process has been documented in favor of the new guidelines.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/documented/deprecated/

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch. Thanks!

When introducing a SIG charter or modification of a charter the following process should be used:

- Identify a small set of owners from the SIG to drive the changes.
Most typically this'll be the SIG chairs.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: this will

@smarterclayton
Copy link
Contributor

One very minor wording thing, lgtm otherwise. Will wait for others to read though.

@jbeda jbeda force-pushed the sig-clarification branch from 01a8a86 to b3b4294 Compare April 1, 2018 20:06
@jbeda
Copy link
Contributor Author

jbeda commented Apr 1, 2018

Thanks for the review. Nits/typos fixed.

- Identify a small set of owners from the SIG to drive the changes.
Most typically this will be the SIG chairs.
- Work with the steering committee to gain approval.
This can simply be submitting a PR and sending mail to [steering@kubernetes.io].
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: the Markdown spec defines an implicit link name shortcut (e.g. [steering@kubernetes.io][]), but leaving the name brackets off entirely seems to be an extention. Are we targetting a specific Markdown flavor here?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@wking links are at the bottom of the doc (this line is on line 62)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

links are at the bottom of the doc (this line is on line 62)

Right, and those are fine. But the syntax used in this line (withought the trailng []) isn't in the spec. It's the "completely omit" case from the Kramdown spec, but I don't know how portable it is to other Markdown engines.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this is fine. We do it elsewhere in the repo.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is already used in this file and I was just following the pattern. If and when we start using the content with a markdown parser that doesn't respect this syntax we can look to fix it. As it is, this is part of the commonmark spec which github users (https://spec.commonmark.org/0.28/#shortcut-reference-link). But the state of "spec" in the markdown world is a disaster and I really don't want to have that argument.

README.md Outdated

A first step to contributing is to pick from the [list of kubernetes SIGs](sig-list.md).
* **Committees** are named sets of people that are chartered to take on sensitive topics.
This group is encouraged to be as open as possible while achieving its mission.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it worth mentioning that while they are encouraged to be open, by the nature of the topics they discuss committees are permitted to have private communications as well?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it worth mentioning that while they are encouraged to be open, by the nature of the topics they discuss committees are permitted to have private communications as well?

I think "as possible" already suggests this, but more explicit wording would be fine too.

README.md Outdated
Kubernetes is a set of subprojects, each shepherded by a Special Interest Group (SIG).
Most decision making in Kubernetes happens through SIGs.

A SIG can have its own policy for contribution, described in a `README` or `CONTRIBUTING` file in the SIG folder in this repo (e.g. [sig-cli/CONTRIBUTING](sig-cli/CONTRIBUTING.md)), and its own mailing list, slack channel, etc.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The link goes to CONTRIBUTING.md but the text only says CONTRIBUTING.


- Identify a small set of owners from the SIG to drive the changes.
Most typically this will be the SIG chairs.
- Work with the steering committee to gain approval.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wouldn't working with the steering to gain approval be a latter step in the process (after circulating changes with the sig and/or community)?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was structuring this as an OARP type thing -- Owners, Approvers, Reviewers and Participants. I'll rework it so that it is viewed as more of a sequential process.

- Identify a small set of owners from the SIG to drive the changes.
Most typically this will be the SIG chairs.
- Work with the steering committee to gain approval.
This can simply be submitting a PR and sending mail to [steering@kubernetes.io].
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@wking links are at the bottom of the doc (this line is on line 62)

governance.md Outdated
@@ -109,6 +110,8 @@ This is the purpose of Working Groups (WG). The intent is to make
Working Groups relatively easy to create and to deprecate, once
inactive.

Working groups do not own any code or subprojects. Instead, they are a place for people to discuss topics that cross SIG boundaries.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: the rest of this doc is wrapped at 80 chars

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm a fan of one sentence per line as it tends to merge and diff better. But I didn't want to modify content that wasn't changing and create extra diff noise.

communication have yet to be formalized, but when in doubt, use
kubernetes-dev@googlegroups.com and make an announcement at the
community meeting.
The [KEP process] is being developed as a way to facilitate definition, agreement and communication of efforts that cross SIG boundaries.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: the rest of this doc is wrapped at 80 chars

@bgrant0607
Copy link
Member

See also #1986

* **Committees** are named sets of people that are chartered to take on sensitive topics.
This group is encouraged to be as open as possible while achieving its mission.
Examples of committees include the steering committee and things like security or code of conduct.
* **Special Interest Groups (SIGs)** are persistent open groups that focus on a part of the project.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what does it mean to be open in membership?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

transparent?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what does it mean to be open in membership?

transparent?

An alternative interpretation would be that that self-nomination is sufficient to join (i.e. that there's no new-member vetting process). Perhaps the wording here (and/or in sig-governance.md?) could be updated to make it clear which of those is intended? Do non-lead SIG members have any explicit powers?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right now in the steering committee we are working on guidance/process for the level of "membership" needed to participate in processes like voting for the steering committee. As part of that I don't want to overload the term "membership". I'll reword this to say that anyone is welcome to contribute and participate.

- The steering committee will be looking to ensure the scope is reasonable (and within the scope of Kubernetes) and that processes are fair.
- Alert the rest of the SIG in question to the changes so that anyone within the SIG can object.
Including the SIG mailing list in communications with the steering committee would work for this.
- For large changes alert the rest of the Kubernetes community as the scope of the changes becomes clear.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

May also want to announce at the community meeting

When introducing a SIG charter or modification of a charter the following process should be used:

- Identify a small set of owners from the SIG to drive the changes.
Most typically this will be the SIG chairs.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the process for a new SIG? Presumably it folks proposing the SIG agree upon the chairs / tech leads?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unfortunately, this process is split between this doc and /sig-governance.md. We should probably rationalize these but that is a bigger change. Advice would be appreciated.

I did change that in this PR too to say that for creating a SIG a set of folks proposing the SIG should work with the Steering Committee to scope it.

Most typically this will be the SIG chairs.
- Work with the steering committee to gain approval.
This can simply be submitting a PR and sending mail to [steering@kubernetes.io].
If more substantial changes are desired it is advisable to socialize those before drafting a PR.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd expect the SIG to have consensus before asking the SC to review the changes.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd expect the SIG to have consensus before asking the SC to review the changes.

Or to have deadlocked?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reordered to make it more clear. (pushing soon).

@pwittrock
Copy link
Member

Left a few minor comments. Otherwise LGTM.


Kubernetes is a set of subprojects, each shepherded by a Special Interest Group (SIG).
Kubernetes has three types of groups that are officially supported:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So -- I'm torn on this and would love advice. In my mind subprojects are a subunit of a SIG. They are scoped and live/die and are governed by the owning SIG. It is up to the SIG to decide how tightly those sub-projects are controlled and what the process for figuring out who has commit permissions on those.

I'm happy to rationalize this and either demote them to be sub-SIG in governance.md or add them here. Let me know what you prefer.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Opinion: because they are created and destroyed by the sigs, they should be at a sub-sig level.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, but lack of awareness of subprojects leads to attempts to form WGs that should really be subprojects.

I would be fine with a mention under the SIG bullet rather than just below.

Copy link
Contributor

@mattfarina mattfarina Apr 4, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Part of the governance doc should be to communicate it. People often skim docs like this. If we can make it pop for a skimmer that subprojects are owned by SIGs that pop might be useful in communicating it.

@idvoretskyi
Copy link
Member

/cc

@k8s-ci-robot k8s-ci-robot requested a review from idvoretskyi April 3, 2018 15:46
README.md Outdated
* **Special Interest Groups (SIGs)** are persistent open groups that focus on a part of the project.
SIGs must have open and transparent proceedings.
Anyone is welcome to participate and contribute provided they follow the Kubernetes Code of Conduct.
The purpose of a SIG is to own and develop a set of subprojects (defined below).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please bold "subprojects"

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm putting a subpoint under SIGs to call out subprojects. It'll be in the list but clearly "under" SIGs.

@philips
Copy link
Contributor

philips commented Apr 6, 2018

LGTM

@idvoretskyi
Copy link
Member

LGTM from me.

@k8s-ci-robot k8s-ci-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Apr 15, 2018
governance.md Outdated
Working groups do not own any code or subprojects. Instead, they are a place for people to discuss topics that cross SIG boundaries.

Working groups are primarily used to facilitate topics of discussion that are in scope for Kubernetes but that cross SIG lines.
If a set of folks in the community want to get together and discuss a topic, they can do so without forming a Working Group.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems like this paragraph and the first paragraph should be merged or refactored.

I also want to clarify the "short-lived" aspect. We expect WGs to not live forever -- they should have a goal and concrete deliverables, but being short-lived shouldn't be a reason to create a WG. For example, a WG isn't needed for every short-term effort. Every release ships the results of many short-term efforts.

I also do want to address the class of SIGs/WGs for "use case X on Kubernetes": most of SIG Apps, SIG Big Data, M L WG, the proposed IoT/Edge WG. I will send email about that.

Most of our current WGs probably should not be WGs.

@philips
Copy link
Contributor

philips commented Jul 13, 2018

@brendanburns and I had to answer questions regarding this stuff. Particularly the commitee, sig, and subproject thing. Can you rebase and merge this @jbeda ?

@michelleN
Copy link

michelleN commented Sep 26, 2018

@jbeda - these are really helpful changes. would you mind re-basing so we can merge?

Signed-off-by: Joe Beda <joe.github@bedafamily.com>
Signed-off-by: Joe Beda <joe.github@bedafamily.com>
Signed-off-by: Joe Beda <joe.github@bedafamily.com>
@k8s-ci-robot k8s-ci-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Sep 27, 2018
@jdumars
Copy link
Member

jdumars commented Oct 1, 2018

/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Oct 1, 2018
@jdumars
Copy link
Member

jdumars commented Oct 1, 2018

Thank you Joe for getting this done!

Copy link
Contributor

@philips philips left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am going to say we can fix my one comment at the same time #2702 is sorted.

Approving but holding for the rest of steering to have until Friday to review.

/approve
/hold

@@ -106,15 +107,28 @@ This is the purpose of Working Groups (WG). The intent is to make
Working Groups relatively easy to create and to deprecate, once
inactive.

To propose a new working group, first find a SIG to sponsor the group.
Working groups do not own any code or subprojects. Instead, they are a place for
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we kept getting hung up on this during the WG discussion. I think everyone agreed working groups can create and prototype. Just that the code landing in Kubernetes is contingent on SIG/subproject approval. "own any code" is confusing in this meaning.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed. I think that this needs to be addressed further up in the doc too.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about:

“Since WG are intended to have a definite lifetime, to prevent orphaned code at the dissolution of a WG all code in Kubernetes must have a SIG to own and maintain it. The sponsoring SIGs for a WG are expected to own and manage the code created for Kubernetes by a WG, and have authority on whether code created in a WG should become part of Kubernetes”

Or similar?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps a bit wordy, but otherwise fine. It can be word-smithed in a followup PR, IMO.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@k8s-ci-robot k8s-ci-robot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Oct 2, 2018
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: philips

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Oct 2, 2018
Copy link
Contributor

@quinton-hoole quinton-hoole left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agree with @philips that code development/ownership by WG's requires minor clarification to avoid wasting more time on that in discussions. Other than that, lets merge this ASAP and address the remaining nits in followup PR's.
LGTM.

@@ -106,15 +107,28 @@ This is the purpose of Working Groups (WG). The intent is to make
Working Groups relatively easy to create and to deprecate, once
inactive.

To propose a new working group, first find a SIG to sponsor the group.
Working groups do not own any code or subprojects. Instead, they are a place for
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed. I think that this needs to be addressed further up in the doc too.

These are smaller groups that can work independently.
Some subprojects will be part of the main Kubernetes deliverables while others will be more speculative and live in the `kubernetes-sigs` github org.
* **Working Groups** are temporary groups that are formed to address issues that cross SIG boundaries.
Working groups do not own any code or other long term artifacts.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See @philips comment below. Clarify to make it clear that prototypes and proof-of-concept implementations by working groups are in scope and encouraged.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SIGs must have at least one and ideally two SIG leads at any given
time. SIG leads are intended to be organizers and facilitators,
SIGs must have at least one and ideally two SIG chairs at any given
time. SIG chairs are intended to be organizers and facilitators,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that having chairs from multiple companies/organizations should be very strongly encouraged, and that single-company groups of chairs should be the exception, and clearly justified when this is required for practical reasons.

highlight and encourage a larger ecosystem (with things like slack channels)
without offering any official endorsement.

To propose a new working group, first find a SIG to sponsor the group.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Given that WG's are intended to cross SIGs, I think that multiple sigs should sponsor. If only one SIG is in support of the WG, it can simply live in the SIG with all other discussions and/or sub-projects there.

@brendanburns
Copy link
Contributor

brendanburns commented Oct 3, 2018 via email

@philips
Copy link
Contributor

philips commented Oct 8, 2018

/hold cancel

@k8s-ci-robot k8s-ci-robot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Oct 8, 2018
@k8s-ci-robot k8s-ci-robot merged commit c0f27ee into kubernetes:master Oct 8, 2018
@philips
Copy link
Contributor

philips commented Oct 8, 2018

Filed #2766 in an effort to close out this 7 month old PR.

Thanks @jbeda and reviewers.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. committee/steering Denotes an issue or PR intended to be handled by the steering committee. lgtm "Looks good to me", indicates that a PR is ready to be merged. sig/contributor-experience Categorizes an issue or PR as relevant to SIG Contributor Experience. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.